package com.xinqi.modules.chat.chat.message.manager;

import com.xinqi.common.mybatis.data.service.BaseService;
import com.xinqi.modules.chat.chat.message.domain.ChatTopMessageEntity;

import java.util.List;

/**
 * 聊天消息置顶表管理层
 *
 * @author: yyzhen
 * @date: 2023/06/29
 */
public interface ChatTopMessageManager extends BaseService<ChatTopMessageEntity> {

    /**
     * 查询会话下置顶消息
     *
     * @param targetId
     * @return
     */
    List<ChatTopMessageEntity> listByTargetId(String targetId);

    /**
     * 根据会话ID和消息ID查询
     *
     * @param targetId
     * @param messageId
     * @return
     */
    ChatTopMessageEntity infoByTargetIdAndMessageId(String targetId, String messageId);

    /**
     * 根据会话ID和消息ID删除
     *
     * @param targetId
     * @param messageId
     * @return
     */
    boolean removeByTargetIdAndMessageId(String targetId, String messageId);

    /**
     * 查询会话下最早的一条置顶消息
     *
     * @param targetId
     * @return
     */
    ChatTopMessageEntity selectOneByTargetIdOrderByTopTime(String targetId);

    /**
     * 查询会话下置顶消息数量
     *
     * @param targetId
     * @return
     */
    Long countByTargetId(String targetId);

}
